Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE=0 and SOLDIDADARE=True
Print At(0,ULTIMALINEA);"Vuoi dare un oggetto o dei soldi (o/s) ?>";
OGGETTOOSOLDI$=Input$(1)
OGGETTOOSOLDI$=Lower$(OGGETTOOSOLDI$)
If OGGETTOOSOLDI$="o"
Proc DAIUNOGGETTO
Else If OGGETTOOSOLDI$="s"
Proc DAIDEISOLDI
End If
Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE>0 and SOLDIDADARE=True
Print At(0,ULTIMALINEA);"Vuoi dare un personaggio o dei soldi (p/s) ?>";
PERSONAGGIOOSOLDI$=Input$(1)
PERSONAGGIOOSOLDI$=Lower$(PERSONAGGIOOSOLDI$)
If PERSONAGGIOOSOLDI$="p"
Proc DAIUNPERSONAGGIO
Else If PERSONAGGIOOSOLDI$="s"
Proc DAIDEISOLDI
End If
Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE=0 and SOLDIDADARE=True
Proc DAIDEISOLDI
Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE>0 and SOLDIDADARE=False
Print At(0,ULTIMALINEA);"Vuoi dare un oggetto od un personaggio (o/p) ?>";
OGGETTOOPERSONAGGIO$=Input$(1)
OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
If OGGETTOOPERSONAGGIO$="o"
Proc DAIUNOGGETTO
Else If OGGETTOOPERSONAGGIO$="p"
Proc DAIUNPERSONAGGIO
End If
Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE=0 and SOLDIDADARE=False
Proc DAIUNOGGETTO
Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE>0 and SOLDIDADARE=False
Proc DAIUNPERSONAGGIO
Else
Print At(0,ULTIMALINEA);"Non hai oggetti, personaggi o soldi da dare";
If _MUSICA=False
Bell 1
End If
Proc _ASPETTA
End If
Else
Print At(0,ULTIMALINEA);"Non ci sono personaggi a cui dare";
If _MUSICA=False
Bell 1
End If
Proc _ASPETTA
End If
End Proc
Procedure DAIAPAO[AZIONE,P]
A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
NUMEROOGGETTODELPERSONAGGIOP=-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
Inc NUMEROOGGETTODELPERSONAGGIOP
B=A
End If
Next A
If NUMEROOGGETTODELPERSONAGGIOP=-1
Pop Proc
End If
If NUMEROOGGETTODELPERSONAGGIOP=0
A=B
Else
Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOTROVATO=0
Print NOMEP$(P);" ti dà 1 ";
Else
Print NOMEP$(P);" dà 1 ";
End If
If Btst(1,TIPOO(A))=True
Print NOMESRO$(CATEGORIAO(A));
Else
Print NOMESCO$(CATEGORIAO(A));
End If
If PERSONAGGIOTROVATO=0
Print
Else
Print " a ";NOMEP$(PERSONAGGIOTROVATO)
End If
End If
Dec PARAAAZIONEP(AZIONE,P)
If PARAAAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
End If
End Proc
Procedure DAIAPAOB[AZIONE,P]
A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
NUMEROOGGETTODELPERSONAGGIOP=-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
Inc NUMEROOGGETTODELPERSONAGGIOP
B=A
End If
Next A
If NUMEROOGGETTODELPERSONAGGIOP=-1
Pop Proc
End If
If NUMEROOGGETTODELPERSONAGGIOP=0
A=B
Else
Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
B=0
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOTROVATO=0
Print NOMEP$(P);" ti dà 1 ";
Else
Print NOMEP$(P);" dà 1 ";
End If
If Btst(1,TIPOO(A))=True
Print NOMESRO$(CATEGORIAO(A));
Else
Print NOMESCO$(CATEGORIAO(A));
End If
If PERSONAGGIOTROVATO=0
Print
Else
Print " a ";NOMEP$(PERSONAGGIOTROVATO)
End If
End If
Dec PARAAAZIONEP(AZIONE,P)
If PARAAAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
End If
End Proc
Procedure DAIAPAOTB[AZIONE,P]
A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
NUMEROOGGETTODELPERSONAGGIOP=-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
Inc NUMEROOGGETTODELPERSONAGGIOP
B=A
End If
Next A
If NUMEROOGGETTODELPERSONAGGIOP=-1
Pop Proc
End If
If NUMEROOGGETTODELPERSONAGGIOP=0
A=B
Else
Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
B=0
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOTROVATO=0
Print NOMEP$(P);" ti dà 1 ";
Else
Print NOMEP$(P);" dà 1 ";
End If
If Btst(1,TIPOO(A))=True
Print NOMESRO$(CATEGORIAO(A));
Else
Print NOMESCO$(CATEGORIAO(A));
End If
If PERSONAGGIOTROVATO=0
Print
Else
Print " a ";NOMEP$(PERSONAGGIOTROVATO)
End If
End If
Dec PARAAAZIONEP(AZIONE,P)
If PARAAAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
Exit
End If
Next A
End If
End Proc
Procedure DAIAPAP[AZIONE,P]
A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
For A=0 To NUMEROP
If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
Add PESONETTOP(P),-PESOP(A)*1000
Add PESONETTOP(P),-PESONETTOP(A)
Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOTROVATO=0
Print NOMEP$(P);" ti dà ";
Else
Print NOMEP$(P);" dà ";
End If
Print NOMEP$(A);
If PERSONAGGIOTROVATO=0
Print
Else
Print " a ";NOMEP$(PERSONAGGIOTROVATO)
End If
End If
Dec PARAAAZIONEP(AZIONE,P)
If PARAAAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
Exit
End If
Next A
End If
End Proc
Procedure DAIAPPA[AZIONE,P]
A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
A=PARAAAZIONEP(AZIONE,P)
If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
Add PESONETTOP(P),-PESOP(A)*1000
Add PESONETTOP(P),-PESONETTOP(A)
Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOTROVATO=0
Print NOMEP$(P);" ti dà ";
Else
Print NOMEP$(P);" dà ";
End If
Print NOMEP$(A);
If PERSONAGGIOTROVATO=0
Print
Else
Print " a ";NOMEP$(PERSONAGGIOTROVATO)
End If
End If
FINEA(AZIONE,P)=True
End If
End If
End Proc
Procedure DAIAPABO[AZIONE,P]
A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
NUMEROOGGETTODELPERSONAGGIOP=-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
Inc NUMEROOGGETTODELPERSONAGGIOP
B=A
End If
Next A
If NUMEROOGGETTODELPERSONAGGIOP=-1
Pop Proc
End If
If NUMEROOGGETTODELPERSONAGGIOP=0
A=B
Else
Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOTROVATO=0
Print NOMEP$(P);" ti dà 1 ";
Else
Print NOMEP$(P);" dà 1 ";
End If
If Btst(1,TIPOO(A))=True
Print NOMESRO$(CATEGORIAO(A));
Else
Print NOMESCO$(CATEGORIAO(A));
End If
If PERSONAGGIOTROVATO=0
Print
Else
Print " a ";NOMEP$(PERSONAGGIOTROVATO)
End If
End If
Dec PARABAZIONEP(AZIONE,P)
If PARABAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
End If
End Proc
Procedure DAIAPABOC[AZIONE,P]
A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
NUMEROOGGETTODELPERSONAGGIOP=-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARACAZIONEP(AZIONE,P)
Inc NUMEROOGGETTODELPERSONAGGIOP
B=A
End If
Next A
If NUMEROOGGETTODELPERSONAGGIOP=-1
Pop Proc
End If
If NUMEROOGGETTODELPERSONAGGIOP=0
A=B
Else
Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
B=0
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARACAZIONEP(AZIONE,P)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOTROVATO=0
Print NOMEP$(P);" ti dà 1 ";
Else
Print NOMEP$(P);" dà 1 ";
End If
If Btst(1,TIPOO(A))=True
Print NOMESRO$(CATEGORIAO(A));
Else
Print NOMESCO$(CATEGORIAO(A));
End If
If PERSONAGGIOTROVATO=0
Print
Else
Print " a ";NOMEP$(PERSONAGGIOTROVATO)
End If
End If
Dec PARABAZIONEP(AZIONE,P)
If PARABAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
End If
End Proc
Procedure DAIAPABOTC[AZIONE,P]
A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
NUMEROOGGETTODELPERSONAGGIOP=-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARACAZIONEP(AZIONE,P)
Inc NUMEROOGGETTODELPERSONAGGIOP
B=A
End If
Next A
If NUMEROOGGETTODELPERSONAGGIOP=-1
Pop Proc
End If
If NUMEROOGGETTODELPERSONAGGIOP=0
A=B
Else
Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
B=0
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARACAZIONEP(AZIONE,P)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOTROVATO=0
Print NOMEP$(P);" ti dà 1 ";
Else
Print NOMEP$(P);" dà 1 ";
End If
If Btst(1,TIPOO(A))=True
Print NOMESRO$(CATEGORIAO(A));
Else
Print NOMESCO$(CATEGORIAO(A));
End If
If PERSONAGGIOTROVATO=0
Print
Else
Print " a ";NOMEP$(PERSONAGGIOTROVATO)
End If
End If
Dec PARABAZIONEP(AZIONE,P)
If PARABAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
End If
End Proc
Procedure DAIAPABP[AZIONE,P]
A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
For A=0 To NUMEROP
If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
Add PESONETTOP(P),-PESOP(A)*1000
Add PESONETTOP(P),-PESONETTOP(A)
Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOTROVATO=0
Print NOMEP$(P);" ti dà ";
Else
Print NOMEP$(P);" dà ";
End If
Print NOMEP$(A);
If PERSONAGGIOTROVATO=0
Print
Else
Print " a ";NOMEP$(PERSONAGGIOTROVATO)
End If
End If
Dec PARABAZIONEP(AZIONE,P)
If PARABAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
Exit
End If
Next A
End If
End Proc
Procedure DAIAPAPB[AZIONE,P]
A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
A=PARABAZIONEP(AZIONE,P)
If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
Add PESONETTOP(P),-PESOP(A)*1000
Add PESONETTOP(P),-PESONETTOP(A)
Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIVISIBILI
Next A
If PERSONAGGIVISIBILI>1
Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi guardare ?>";PERSONAGGIO$;
Curs Off
If PERSONAGGIO$<>""
PERSONAGGIO$=Lower$(PERSONAGGIO$)
If PERSONAGGIO$="me"
PERSONAGGIO$=NOMEP$(0)
DESCRIZIONE$=DESCRIZIONEP$(0)
COMPIUTAAZIONE=1
Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardarti";
Proc _ASPETTA
Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
Else
For A=1 To NUMEROP
If PERSONAGGIO$=Lower$(NOMEP$(A)) and POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
PERSONAGGIO$=NOMEP$(A)
DESCRIZIONE$=DESCRIZIONEP$(A)
COMPIUTAAZIONE=1
Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare il personaggio ";PERSONAGGIO$;
Proc _ASPETTA
Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
Exit
End If
Next A
If A=NUMEROP+1
Locate 0,ULTIMALINEA : Cline : Print "Non c'è nessun ";PERSONAGGIO$;
If _MUSICA=False
Bell 1
End If
Proc _ASPETTA
End If
End If
End If
Else
PERSONAGGIO$=NOMEP$(0)
DESCRIZIONE$=DESCRIZIONEP$(0)
COMPIUTAAZIONE=1
Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardarti";
Proc _ASPETTA
Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
End If
End Proc
Procedure INFORMAZIONI
Cls
TIC["Comandi utilizzabili:",0] : Print
If TEMP0DIATTRAVERSAMENTOP(0)=0
Print "Premi A aspettare cinque minuti di gioco"
Print "Premi C per vedere le caratteristiche del tuo personaggio"
Print "Premi D per dare un oggetto, un personaggio o dei soldi ad un personaggio"
Print "Premi E per esaminare un oggetto od un personaggio"
Print "Premi G per guardare un'edificio, un luogo, un oggetto od un personaggio"
Print "Premi I per vedere l'inventario del tuo personaggio"
Print "Premi J (Juke Box) per cambiare il motivo di sottofondo"
Print "Premi L per lasciare un oggetto, un personaggio o dei soldi"
Print "Premi M per muoverti"
Print "Premi P per prendere un oggetto, un personaggio o dei soldi"
Print "Premi T per cambiare il modo di visualizzazione del tempo trascorso"
Print "Premi U per usare un oggetto su un altro oggetto o su un personaggio"
Print "Premi X per smettere di giocare"
Print "Premi Z per dormire"
Else
Print "Premi A per aspettare cinque minuti di gioco"
Print "Premi C per vedere le caratteristiche del tuo personaggio"
Print "Premi D per dare un oggetto, un personaggio o dei soldi ad un personaggio"
Print "Premi I per vedere l'inventario del tuo personaggio"
Print "Premi J (Juke Box) per cambiare il motivo di sottofondo"
Print "Premi M per muoverti"
Print "Premi T per cambiare il modo di visualizzazione del tempo trascorso"
Print "Premi X per smettere di giocare"
Print "Premi Z per dormire"
End If
Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key
End Proc
Procedure INIZIALIZZALEVARIABILI
MESSAGGIO1$=""
For A=0 To NUMMASCO
NOMESCO$(A)="Oggetto"+Str$(A)
NOMEPCO$(A)="Oggetti"+Str$(A)
NOMESRO$(A)="Resto oggetto"+Str$(A)
NOMEPRO$(A)="Resti oggetti"+Str$(A)
PESOCO(A)=5
PESORESTOCO(A)=1
DESCRIZIONECO$(A)="Descrizione della categoria"+Str$(A)+" degli oggetti"
If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(2,TIPOP(0))=False
Print NOMEP$(P);" lascia 1 ";
If Btst(1,TIPOO(A))=True
Print NOMESRO$(CATEGORIAO(A))
Else
Print NOMESCO$(CATEGORIAO(A))
End If
End If
Dec PARAAAZIONEP(AZIONE,P)
If PARAAAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
End Proc
Procedure LASCIAAP[AZIONE,P]
For A=1 To NUMEROP
If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
POSIZIONEP(A)=POSIZIONEP(P)
TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
Bclr 0,TIPOP(A)
Add PESONETTOP(P),-PESOP(A)*1000
Add PESONETTOP(P),-PESONETTOP(A)
If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
Print NOMEP$(P);" lascia ";NOMEP$(A)
End If
FINEA(AZIONE,P)=True
End If
End Proc
Procedure LASCIAPASSAREILTEMPO
COMPIUTAAZIONE=5
Print At(0,ULTIMALINEA);"Hai deciso di aspettare cinque minuti";
Proc _ASPETTA
End Proc
Procedure LASCIAUNOGGETTO
For A=0 To NUMEROCO
If OGGETTODELPERSONAGGIO0(A)>0
Inc CATEGORIEOGGETTI
End If
If RESTODELPERSONAGGIO0(A)>0
Inc CATEGORIEOGGETTI
End If
Next A
OGGETTODIFENSIVOINDOSSATO=-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(2,TIPOCO(CATEGORIAO(A)))=True
If POSIZIONEO(B)=-1-NUMERO and Btst(0,TIPOO(B))=False
If Btst(1,TIPOO(B))=True
Add PESONETTOP(A),-PESORESTOCO(CATEGORIAO(B))
Else
Add PESONETTOP(A),-PESOCO(CATEGORIAO(B))
End If
End If
Next B
For B=1 To NUMEROP
If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
Add PESONETTOP(A),-PESOP(B)*1000
Add PESONETTOP(A),-PESONETTOP(B)
End If
Next B
End If
COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline
Print "Hai deciso di dare 1 ";
If Btst(1,TIPOO(NUMERO))=True
Print NOMESRO$(CATEGORIAO(NUMERO));
Else
Print NOMESCO$(CATEGORIAO(NUMERO));
End If
Else If TIPO$="P"
POSIZIONEP(NUMERO)=-1-A
Add PESONETTOP(0),-PESOP(NUMERO)*1000
Add PESONETTOP(0),-PESONETTOP(NUMERO)
Add PESONETTOP(A),PESOP(NUMERO)*1000
Add PESONETTOP(A),PESONETTOP(NUMERO)
COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline
Print "Hai deciso di dare ";NOMEP$(NUMERO);
Else If TIPO$="S"
Add SOLDIP(A),NUMERO
Add SOLDIRICEVUTIP(A),NUMERO
Add PESONETTOP(0),-NUMERO*PESOS
Add PESONETTOP(A),NUMERO*PESOS
COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline
Print "Hai deciso di dare";NUMERO;
If NUMERO=1
Print " soldo";
Else
Print " soldi";
End If
End If
Print " a ";NOMEP$(A);
Proc _ASPETTA
End If
Next A
End If
End Proc
Procedure PERSONAGGIOVISIBILE[P]
If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
PERSONAGGIOVISIBILEP(P)=True
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
PERSONAGGIOVISIBILEP(P)=True
Else
PERSONAGGIOVISIBILEP(P)=False
End If
End Proc
Procedure PRENDI
If TEMP0DIATTRAVERSAMENTOP(0)>0
For A=1 To NUMEROP
If PERSONAGGIOVISIBILEP(A)=True
Inc PERSONAGGI
End If
Next A
If PERSONAGGI>0
Proc PRENDIUNPERSONAGGIO
Else
Print At(0,ULTIMALINEA);"Non ci sono personaggi da prendere";
If _MUSICA=False
Bell 1
End If
Proc _ASPETTA
Pop Proc
End If
Else
For A=1 To NUMEROP
If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
Inc PERSONAGGI
End If
Next A
End If
For A=0 To NUMEROCO
If OGGETTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
If RESTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
Next A
If SOLDIL(POSIZIONEP(0))>0
SOLDI=True
End If
If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=True
Print At(0,ULTIMALINEA);"Vuoi prendere un oggetto,un personaggio o dei soldi (o/p/s) ?>";
If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=False
If Btst(7,TIPOCO(CATEGORIAO(A)))=True
Print At(0,ULTIMALINEA);"Non puoi prendere 1 ";NOMESCO$(CATEGORIAO(A));", è residente";
If _MUSICA=False
Bell 1
End If
Else
POSIZIONEO(A)=-1 : Bset 0,TIPOO(A)
Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(A))
Add PESONETTOP(0),PESOCO(CATEGORIAO(A))
If Btst(1,TIPOCO(CATEGORIAO(A)))=True
For B=0 To NUMEROO
If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
If Btst(1,TIPOO(B))=True
Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(B))
Else
Add PESONETTOP(0),PESOCO(CATEGORIAO(B))
End If
End If
Next B
For B=1 To NUMEROP
If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
Add PESONETTOP(0),PESOP(B)*1000
Add PESONETTOP(0),PESONETTOP(B)
End If
Next B
End If
COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline
Print "Hai deciso di prendere 1 ";NOMESCO$(CATEGORIAO(A));
End If
Proc _ASPETTA : Exit
Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=True
If Btst(7,TIPOCO(CATEGORIAO(A)))=True
Print At(0,ULTIMALINEA);"Non puoi prendere 1 ";NOMESRO$(CATEGORIAO(A));", è residente";
If _MUSICA=False
Bell 1
End If
Else
POSIZIONEO(A)=-1 : Bset 0,TIPOO(A)
Inc RESTODELPERSONAGGIO0(CATEGORIAO(A))
Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(A))
If Btst(1,TIPOCO(CATEGORIAO(A)))=True
For B=0 To NUMEROO
If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
If Btst(1,TIPOO(B))=True
Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(B))
Else
Add PESONETTOP(0),PESOCO(CATEGORIAO(B))
End If
End If
Next B
For B=1 To NUMEROP
If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
Add PESONETTOP(0),PESOP(B)*1000
Add PESONETTOP(0),PESONETTOP(B)
End If
Next B
End If
COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline
Print "Hai deciso di prendere 1 ";NOMESRO$(CATEGORIAO(A));
End If
Proc _ASPETTA : Exit
End If
End If
Next A
If A=NUMEROO+1
Locate 0,ULTIMALINEA : Cline : Print "Non c'è nessun ";OGGETTO$;
If _MUSICA=False
Bell 1
End If
Proc _ASPETTA
End If
End If
Else
For A=0 To NUMEROO
If POSIZIONEO(A)=POSIZIONEP(0) and Btst(7,TIPOCO(CATEGORIAO(A)))=False
POSIZIONEO(A)=-1 : Bset 0,TIPOO(A)
If Btst(1,TIPOO(A))=True
Inc RESTODELPERSONAGGIO0(CATEGORIAO(A))
Else
Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(A))
End If
Add PESONETTOP(0),PESOCO(CATEGORIAO(A))
If Btst(1,TIPOCO(CATEGORIAO(A)))=True
For B=0 To NUMEROO
If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
If Btst(1,TIPOO(B))=True
Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(B))
Else
Add PESONETTOP(0),PESOCO(CATEGORIAO(B))
End If
End If
Next B
For B=1 To NUMEROP
If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
Add PESONETTOP(0),PESOP(B)*1000
Add PESONETTOP(0),PESONETTOP(B)
End If
Next B
End If
COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline
Print "Hai deciso di prendere 1 ";
If Btst(1,TIPOO(A))=True
Print NOMESRO$(CATEGORIAO(A));
Else
Print NOMESCO$(CATEGORIAO(A));
End If
Proc _ASPETTA : Exit
End If
Next A
End If
End If
End Proc
Procedure PRENDIUNPERSONAGGIO
For A=1 To NUMEROP
If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGI
Next A
If PERSONAGGI>0
If PERSONAGGI>1
Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi prendere ?>";PERSONAGGIO$;
Curs Off
If PERSONAGGIO$<>""
For A=1 To NUMEROP
If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A)) and POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
POSIZIONEP(A)=-1 : Bset 0,TIPOP(A)
Add PESONETTOP(0),PESOP(A)*1000
Add PESONETTOP(0),PESONETTOP(A)
COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline
Print "Hai deciso di prendere ";NOMEP$(A);
Proc _ASPETTA : Exit
End If
Next A
If A=NUMEROP+1
Locate 0,ULTIMALINEA : Cline : Print "Non c'è nessun ";PERSONAGGIO$;
If _MUSICA=False
Bell 1
End If
Proc _ASPETTA
End If
End If
Else
For A=1 To NUMEROP
If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
POSIZIONEP(A)=-1 : Bset 0,TIPOP(A)
Add PESONETTOP(0),PESOP(A)*1000
Add PESONETTOP(0),PESONETTOP(A)
COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline
Print "Hai deciso di prendere ";NOMEP$(A);
Proc _ASPETTA : Exit
End If
Next A
End If
End If
End Proc
Procedure SALVAUNFILE
Show On : Cls
FILE$=Fsel$("*.Adv",NOMEFILE$,"Salva un file","di Adventures Conceiver")
If Len(FILE$)>0
If Upper$(Right$(FILE$,4))<>".ADV"
FILE$=FILE$+".Adv"
End If
Proc TIC["Sto salvando il file",ULTIMALINEA-1]
Proc TIC[FILE$,ULTIMALINEA]
Bsave FILE$,Start(BANCO) To Start(BANCO)+Length(BANCO) : Proc _ASPETTA
End If
Erase BANCO
Hide On
End Proc
Procedure SCOPODELGIOCO[NUOVOSCOPODELGIOCO]
SCOPODELGIOCO=AZIONEP(7,0)
PARA=PARAAAZIONEP(7,0)
PARB=PARABAZIONEP(7,0)
PARC=PARACAZIONEP(7,0)
Cls
If NUOVOSCOPODELGIOCO=True
If M0DIFICA=False
Proc TIC[MESSAGGIO3$,0] : Print
End If
Print "Scopo del gioco>";
If SCOPODELGIOCO=0
Print "nessuno"
Else If SCOPODELGIOCO=1
Print "Dai a ";NOMEP$(PARA);PARB;" ";
If PARB=1
Print NOMESCO$(PARC)
Else
Print NOMEPCO$(PARC)
End If
Else If SCOPODELGIOCO=2
Print "Dai a ";NOMEP$(PARA);PARB;" oggett";
If PARB=1
Print "o ";
Else
Print "i ";
End If
Proc MOSTRACATEGORIAPERAZIONE[PARC]
Else If SCOPODELGIOCO=3
Print "Dai a ";NOMEP$(PARA);PARB;" sold";
If PARB=1
Print "o"
Else
Print "i"
End If
Else If SCOPODELGIOCO=4
Print "Guadagna";PARA;" sold";
If PARA=1
Print "o"
Else
Print "i"
End If
Else If SCOPODELGIOCO=5
Print "Lascia nel luogo";PARA;" di nome>";NOMEL$(PARA);PARB;" ";
If PARB=1
Print NOMESCO$(PARC)
Else
Print NOMEPCO$(PARC)
End If
Else If SCOPODELGIOCO=6
Print "Lascia nel luogo";PARA;" di nome>";NOMEL$(PARA);PARB;" oggett";
If PARB=1
Print "o ";
Else
Print "i ";
End If
Proc MOSTRACATEGORIAPERAZIONE[PARC]
Else If SCOPODELGIOCO=7
Print "Lascia nel luogo";PARA;" di nome>";NOMEL$(PARA);PARB;" sold";
If PARB=1
Print "o"
Else
Print "i"
End If
Else If SCOPODELGIOCO=8
Print "Prendi";PARA;" ";
If PARA=1
Print NOMESCO$(PARB)
Else
Print NOMEPCO$(PARB)
End If
Else If SCOPODELGIOCO=9
Print "Prendi";PARA;" oggett";
If PARA=1
Print "o ";
Else
Print "i ";
End If
Proc MOSTRACATEGORIAPERAZIONE[PARB]
Else If SCOPODELGIOCO=10
Print "Trova il personaggio";PARA;" di nome>";NOMEP$(PARA)
Else If SCOPODELGIOCO=11
Print "Uccidi il personaggio";PARA;" di nome>";NOMEP$(PARA)
Else If SCOPODELGIOCO=12
Print "Usa 1 ";NOMESCO$(PARA);" su 1 ";NOMESCO$(PARB)
Else If SCOPODELGIOCO=13
Print "Usa 1 ";NOMESCO$(PARA);" su 1 oggetto ";
Proc MOSTRACATEGORIAPERAZIONE[PARB]
Else If SCOPODELGIOCO=14
Print "Usa 1 ";NOMESCO$(PARA);" su ";NOMEP$(PARB)
Else If SCOPODELGIOCO=15
Print "Usa 1 oggetto ";
Proc MOSTRACATEGORIAPERAZIONE[PARA]
Print Space$(17);"su 1 ";NOMESCO$(PARB)
Else If SCOPODELGIOCO=16
Print "Usa 1 oggetto ";
Proc MOSTRACATEGORIAPERAZIONE[PARA]
Print Space$(17);"su 1 oggetto ";
Proc MOSTRACATEGORIAPERAZIONE[PARB]
Else If SCOPODELGIOCO=17
Print "Usa 1 oggetto ";
Proc MOSTRACATEGORIAPERAZIONE[PARA]
Print Space$(17);"su ";NOMEP$(PARB)
Else If SCOPODELGIOCO=18
Print "Vai nel luogo";PARA;" di nome>";NOMEL$(PARA)
End If
Else
If NUOVOSCOPODELGIOCO=1
'Dai al personaggio PARA PARB oggetti PARC
Locate 0,ULTIMALINEA : Input "A quale personaggio vuoi dare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOACUIDARE$
If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
Print "Non hai 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" da usare con 1";
If _MUSICA=False
Bell 1
End If
End If
End If
End If
End If
Print " ";
If RESTO=True
Print NOMESRO$(CATEGORIAO(O));
Else
Print NOMESCO$(CATEGORIAO(O));
End If
OGGETTOUSANTE=O
PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO=P
If P>0 and RESISTENZAP(P)=0 Then Proc MORTE[P]
Proc _ASPETTA
If PERSONAGGIO0DEVELEGGERE=True
Proc MOSTRAMESSAGGIO["Lettura di 1 "+NOMESCO$(CATEGORIAO(O)),TESTOO$(TESTOO(O))]
PERSONAGGIO0DEVELEGGERE=False
End If
End Proc
Procedure USASUPERSONAGGIOP[O,P,Q]
If P=Q Then Pop Proc
If Btst(1,TIPOO(O))=False
If Btst(2,TIPOP(0))=False
PERSONAGGIO0SVEGLIO=True
End If
If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
PERSONAGGIOVISIBILE=True
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
PERSONAGGIOVISIBILE=True
Else If POSIZIONEP(P)=-1-Q and Btst(0,TIPOP(P))=True
If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
PERSONAGGIOVISIBILE=True
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
PERSONAGGIOVISIBILE=True
End If
End If
If TIPOCO(CATEGORIAO(O))=%1
If Q>0
If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
AZIONE$="sta facendo mangiare a "+NOMEP$(Q)+" 1"
End If
Else
If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
Proc MOSTRAMESSAGGIO["Lettura di 1 "+NOMESCO$(CATEGORIAO(O)),TESTOO$(TESTOO(O))]
PERSONAGGIO0DEVELEGGERE=False
End If
End If
End Proc
Procedure USASUUNOGGETTO[O]
For A=0 To NUMEROCO
If OGGETTINELLUOGO(A)>0
Inc CATEGORIEOGGETTI
End If
If RESTINELLUOGO(A)>0
Inc CATEGORIEOGGETTI
End If
Next A
If CATEGORIEOGGETTI>0
If CATEGORIEOGGETTI>1
Locate 0,ULTIMALINEA : Input "Su quale oggetto vuoi usare ?>";OGGETTO$;
Curs Off
If OGGETTO$<>""
For A=0 To NUMEROO
If POSIZIONEO(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(3,TIPOO(A))=False
If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A)))
Proc USASUOGGETTO[O,A] : Exit
Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A)))
Proc USASUOGGETTO[O,A] : Exit
End If
End If
Next A
If A=NUMEROO+1
Locate 0,ULTIMALINEA : Cline : Print "Non c'è nessun ";OGGETTO$;
If _MUSICA=False
Bell 1
End If
Proc _ASPETTA
End If
End If
Else
For A=0 To NUMEROO
If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False
Proc USASUOGGETTO[O,A] : Exit
End If
Next A
End If
End If
End Proc
Procedure USASUUNPERSONAGGIO[O]
For A=0 To NUMEROP
If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
Inc PERSONAGGI
Else If LUOGODIDESTINAZIONEP(A)=POSIZIONEP(0) and CAMMINOP(A)-TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(A)=DREZIONEPRESAP(0)
Inc PERSONAGGI
End If
Next A
If PERSONAGGI>1
Locate 0,ULTIMALINEA : Input "Su quale personaggio vuoi usare ?>";PERSONAGGIO$;
Curs Off
If PERSONAGGIO$<>""
PERSONAGGIO$=Lower$(PERSONAGGIO$)
If PERSONAGGIO$="me"
USASUPERSONAGGIO[O,0]
Else
For A=1 To NUMEROP
If PERSONAGGIO$=Lower$(NOMEP$(A))
If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
USASUPERSONAGGIO[O,A] : Exit
Else If LUOGODIDESTINAZIONEP(A)=POSIZIONEP(0) and CAMMINOP(A)-TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(A)=DREZIONEPRESAP(0)
USASUPERSONAGGIO[O,A] : Exit
End If
End If
Next A
If A=NUMEROP+1
Locate 0,ULTIMALINEA : Cline : Print "Non c'è nessun ";PERSONAGGIO$;
If _MUSICA=False
Bell 1
End If
Proc _ASPETTA
End If
End If
End If
Else
USASUPERSONAGGIO[O,0]
End If
End Proc
Procedure USATI[O,P]
If Btst(1,TIPOO(O))=False
If Btst(2,TIPOP(0))=False
If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
PERSONAGGIOVISIBILE=True
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
PERSONAGGIOVISIBILE=True
Else If POSIZIONEP(P)=-1 and Btst(0,TIPOP(P))=True
PERSONAGGIOVISIBILE=True
End If
End If
If PERSONAGGIOVISIBILE=True
Print NOMEP$(P);" ";
End If
If TIPOCO(CATEGORIAO(O))=%1
If PERSONAGGIOVISIBILE=True
Print "si sta mangiando 1";
End If
Bset 1,TIPOO(O)
If RESISTENZAP(P)<C0STITUZIONEP(P)
Inc RESISTENZAP(P)
End If
Else If TIPOCO(CATEGORIAO(O))=%100
If PERSONAGGIOVISIBILE=True
Print "si sta difendendo con 1";
End If
Bset 2,TIPOO(O)
Else If TIPOCO(CATEGORIAO(O))=%1000
If PERSONAGGIOVISIBILE=True
Print "si sta leggendo 1";
End If
Else If TIPOCO(CATEGORIAO(O))=%10001
If PERSONAGGIOVISIBILE=True
Print "si sta bevendo 1";
End If
Bset 1,TIPOO(O)
If RESISTENZAP(P)<C0STITUZIONEP(P)
Inc RESISTENZAP(P)
End If
Else If TIPOCO(CATEGORIAO(O))=%100000
If PERSONAGGIOVISIBILE=True
Print "si sta ammaliando con 1";
End If
Else If TIPOCO(CATEGORIAO(O))=%1000000
If PERSONAGGIOVISIBILE=True
Print "si colpisce con 1";
End If
RESISTENZA=RESISTENZAP(P)
Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=False
If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARABAZIONEP(AZIONE,P)
USASUOGGETTOP[A,P,B]
Dec PARAAAZIONEP(AZIONE,P)
If PARAAAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
Exit
End If
Next B
End Proc
Procedure USAUNOSUAP[AZIONE,P]
A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
USASUPERSONAGGIOP[A,P,PERSONAGGIOTROVATO]
Dec PARAAAZIONEP(AZIONE,P)
If PARAAAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
Exit
End If
Next A
End If
End Proc
Procedure USAUNOSUPA[AZIONE,P]
A=PARAAAZIONEP(AZIONE,P)
For B=0 To NUMEROO
If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
Proc USASUPERSONAGGIOP[B,P,A]
Exit
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
Proc USASUPERSONAGGIOP[B,P,A]
Exit
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
Proc USASUPERSONAGGIOP[B,P,A]
Exit
End If
End If
Next B
End Proc
Procedure USAUNOASUBO[AZIONE,P]
NUMEROOGGETTODELPERSONAGGIOP=-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
Inc NUMEROOGGETTODELPERSONAGGIOP
B=A
End If
Next A
If NUMEROOGGETTODELPERSONAGGIOP=-1
Pop Proc
End If
If NUMEROOGGETTODELPERSONAGGIOP=0
A=B
Else
Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARACAZIONEP(AZIONE,P)
USASUOGGETTOP[A,P,B]
Dec PARABAZIONEP(AZIONE,P)
If PARABAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
Exit
End If
Next B
End Proc
Procedure USAUNOASUBP[AZIONE,P]
A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
USASUPERSONAGGIOP[A,P,B]
Dec PARABAZIONEP(AZIONE,P)
If PARABAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
Exit
End If
Next A
End If
End Proc
Procedure USAUNOASUPB[AZIONE,P]
A=PARABAZIONEP(AZIONE,P)
For B=0 To NUMEROO
If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True and CATEGORIAO(B)=PARAAAZIONEP(AZIONE,P)
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
Proc USASUPERSONAGGIOP[B,P,A]
Exit
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
Proc USASUPERSONAGGIOP[B,P,A]
Exit
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
Proc USASUPERSONAGGIOP[B,P,A]
Exit
End If
End If
Next B
End Proc
Procedure USAUNOTASUBO[AZIONE,P]
NUMEROOGGETTODELPERSONAGGIOP=-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
Inc NUMEROOGGETTODELPERSONAGGIOP
B=A
End If
Next A
If NUMEROOGGETTODELPERSONAGGIOP=-1
Pop Proc
End If
If NUMEROOGGETTODELPERSONAGGIOP=0
A=B
Else
Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARACAZIONEP(AZIONE,P)
USASUOGGETTOP[A,P,B]
Dec PARABAZIONEP(AZIONE,P)
If PARABAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
Exit
End If
Next B
End Proc
Procedure USAUNOTASUBP[AZIONE,P]
A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARAAAZIONEP(AZIONE,P)
USASUPERSONAGGIOP[A,P,B]
Dec PARABAZIONEP(AZIONE,P)
If PARABAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
Exit
End If
Next A
End If
End Proc
Procedure USAUNOTASUPB[AZIONE,P]
A=PARABAZIONEP(AZIONE,P)
For B=0 To NUMEROO
If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True and TIPOCO(CATEGORIAO(B))=PARAAAZIONEP(AZIONE,P)
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
Proc USASUPERSONAGGIOP[B,P,A]
Exit
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
Proc USASUPERSONAGGIOP[B,P,A]
Exit
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True